#include <iostream>
#include "comm.hpp"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
    umask(0);
    // 新建管道文件
    int fifo = mkfifo(FIFO_FILE, 0666);
    if (fifo < 0)
    {
        std::cerr << "创建管道文件失败" << std::endl;
        return -1;
    }

    // 打开文件
    int fd = open(FIFO_FILE, O_RDONLY);
    if (fd < 0)
    {
        std::cerr << "打开文件失败" << std::endl;
        return -2;
    }

    // 打开成功
    else
    {
        // 读取文件
        char buffer[1024];
        while (true)
        {
            ssize_t number = read(fd, buffer, sizeof(buffer) - 1);
            if (number > 0)
            {
                std::cout << "serve say:" << buffer << std::endl;
                buffer[number] = 0;
            }

            else
            {
                // < 0 写端关闭 读端读到文件结尾0
                std::cerr << "client quit" << std::endl;
                break;
            }
        }
    }

    // 关闭文件
    close(fd);

    // 删除文件
    fifo = unlink(FIFO_FILE);
    if (fifo == 0)
    {
        std::cout << "删除成功" << std::endl;
    }
    else
    {
        std::cout << "删除失败" << std::endl;
    }
    return 0;
}